/****************************************************************
 **  Nombre: DAOPreguntasEHE.java                          *
 **  Version: 1.0.0                                             *
 **  Diagrama: GAPI v4.7.1                                      *
 **  Autor: Amado Cante                        *
 **  Creado: 17-marzo-2013
 *   Caso de uso: MPE1,MPE2
 **  Modificado:                                                *
 ***************************************************************/
package DAO;

import AccesoBD.AccesoBaseDatos;
import Dominio.PosibleRespuestaEHE;
import Dominio.PreguntaEHE;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
/**
 * Clase que controla las operaciones de base de datos de las preguntas de habitos de estudio.
 */
public class DAOPreguntasEHE {

    private final String TABLA_PREGUNTAS_EHE = "preguntas_ehe";
    private final String COLUMNA_CLAVE_PREGUNTA = "cve_pregunta";
    private final String COLUMNA_PREGUNTA = "pregunta";
    private AccesoBaseDatos acceso;
    private Connection conexion;
/**
 * Constructor de la clase
 */
    public DAOPreguntasEHE() {
        acceso = new AccesoBaseDatos();
        conexion = acceso.abrirConexion();
    }
/**
 * Cierra la conexion con la base de datos.
 */
    public void cerrarConexionAPreguntasEHE() {
        acceso.cerrarConexion(conexion);
    }
/**
 * Busca todas las preguntas de habitos de estudio.
 * @return Arreglo con las preguntas de habitos de estudio.
 */
    public ArrayList<PreguntaEHE> buscarTodasLasPreguntasEHE() {
        ArrayList<PreguntaEHE> listaPreguntasEHE = new ArrayList<PreguntaEHE>();

        ResultSet resultadoBusqueda = null;

        try {
            Statement sentencia = acceso.crearSentenciaBD(conexion);
            String querySearch = "SELECT * FROM " + TABLA_PREGUNTAS_EHE + ";";
            resultadoBusqueda = sentencia.executeQuery(querySearch);
            
            while(resultadoBusqueda.next()) {
                int clavePregunta = resultadoBusqueda.getInt(1);
                String pregunta = resultadoBusqueda.getString(2);
                
                PreguntaEHE preguntaEHE = new PreguntaEHE();
                preguntaEHE.setClavePregunta(clavePregunta);
                preguntaEHE.setPregunta(pregunta);
                
                DAORespuestasPosiblesEHE daoRespuestasPosiblesEHE = new DAORespuestasPosiblesEHE();
                ArrayList<PosibleRespuestaEHE> listaDePosiblesRespuestas = daoRespuestasPosiblesEHE.buscarPosiblesRespuestasEHEPorPreguntaEHe(preguntaEHE);
                daoRespuestasPosiblesEHE.cerrarConexionAPreguntasEDD();
                
                preguntaEHE.setListaPosiblesRespuestas(listaDePosiblesRespuestas); 
                
                listaPreguntasEHE.add(preguntaEHE); 
            }                        
            
        } catch (SQLException ex) {
            System.out.println("Ocurrió un problema al tratar de buscar las preguntas");
        }
        
        return listaPreguntasEHE;
    }
    
}
